﻿<AttributeUsage(AttributeTargets.Class)>
Public Class TagAttribute
    Inherits Attribute
    Private _Extension As String
    Private _HeaderLength As Integer
    Private _Version As Short
    Private _FourCC As String
    Private _ParentFourCC As String
    Private _GrandparentFourCC As String

    Public Property HeaderLength As Integer
        Get
            Return _HeaderLength
        End Get
        Set(value As Integer)
            _HeaderLength = value
        End Set
    End Property

    Public Property Extension As String
        Get
            Return _Extension
        End Get
        Set(value As String)
            _Extension = value
        End Set
    End Property

    Public Property FourCC As String
        Get
            Return _FourCC
        End Get
        Set(value As String)
            _FourCC = value
        End Set
    End Property

    Public Property ParentFourCC As String
        Get
            Return _ParentFourCC
        End Get
        Set(value As String)
            _ParentFourCC = value
        End Set
    End Property

    Public Property GrandparentFourCC As String
        Get
            Return _GrandparentFourCC
        End Get
        Set(value As String)
            _GrandparentFourCC = value
        End Set
    End Property

    Public Property Version As Short
        Get
            Return _Version
        End Get
        Set(value As Short)
            _Version = value
        End Set
    End Property

    Sub New(ByVal extension As String, fourcc As String, parentfourcc As String, grandparentfourcc As String, version As Short, ByVal length As Integer)
        _FourCC = fourcc
        _ParentFourCC = parentfourcc
        _GrandparentFourCC = grandparentfourcc
        _Version = version
        _HeaderLength = length
        _Extension = extension
    End Sub
End Class
